今天宠物迷的小编给各位宠物饲养爱好者分享css3翻转3d效果的宠物知识,其中也会对html5如何让图片3d旋转(图片3d旋转css详细教程)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
1、首先打开html文件编辑器,这里使用vscode新建一个html文档,文档中写入基本的html结构,然后插入img标签并插入一张图片,给img一个class属性: 2、然后在上方的head标签中的style标签设置样式,这里设置图片的宽度和高度并设置相对定位,然后设置图片的鼠标悬浮样式,其中设置动画的形式为3d以及设置图片3d旋转偏移的角度,添加一个动画,设置好延时即可: 3、最后打开浏览器,就会看到一个图片: 4、当鼠标移动上去,图片就会自动3d旋转了:
/*以谷歌浏览器为例,实现360度翻转,命名个方法run翻转,调用run,5s周期内实现翻转*/
{
-webkit-animation: run 10s linear infinite; /*添加动画,动画周期为5s,无限循环*/
}
@-webkit-keyframes run {
0% { /*动画初始状态时元素旋转角度*/
-webkit-transform: rotateX(0deg) rotateY(0deg)
}
100% { /*动画结束状态时元素旋转角度*/
-webkit-transform:rotateX(360deg) rotateY(360deg)
}
}
HTML结构
立方体结构中,使用一个wrapper div来包裹立方体。在里面使用6个div来制作立方体的6个面。
front
back
top
bottom
left
right
立方体的每一个面都有它自己的元素。我们稍后会使用CSS来将立方体的6个面放置到正确的位置上。
CSS样式
在立方体的CSS样式中,首先要关注的是立方体的wrapper div。为了制作3D效果,我们需要为它提供一个 CSS perspective属性。
.wrap {
perspective: 800px;
perspective-origin: 50% 100px;
}
CSS perspective属性是一个比较复杂的CSS3属性。最好的理解它的方法是看完文档后,自己动手修改一下DEMO中的perspective属性来看看它的变化。下面需要给包含立方体6个面的立方体的容器.cube提供样式:
.cube {
position: relative;
width: 200px;
transform-style: preserve-3d;
}
给立方体容器200像素的宽度,并设置为相对定位,这样在它里面的立方体的6个面可以设置为绝对定位。preserve-3d属性确保所有6个面都处于3D立体状态。在为6个面设置它们的位置之前,先给它们一些通用的样式:
.cube div {
position: absolute;
width: 200px;
height: 200px;
}
在进过上面对立方体6个面的一系列设置之后,现在我们可以为6个面制作变形效果,以使它们组装为一个立方体。
.back {
transform: translateZ(-100px) rotateY(180deg);
}
.right {
transform: rotateY(-270deg) translateX(100px);
transform-origin: top right;
}
.left {
transform: rotateY(270deg) translateX(-100px);
transform-origin: center left;
}
**** {
transform: rotateX(-90deg) translateY(-100px);
transform-origin: top center;
}
.bottom {
transform: rotateX(90deg) translateY(100px);
transform-origin: bottom center;
}
.front {
transform: translateZ(100px);
}
rotateY的值可以旋转立方体的各个面,使上面的文字处于正确的位置上。而 translateZ 的值使元素在指定容器中向前或向后移动。translateY的值看起来有些混乱,但是请记住,它的作用是通过透明的面板来使指定的面升高或降低来制作3D效果。每一个面都有自己的translations值来使它们处于适当的位置上。你可以自己修改一下这些值来看看效果。
水平旋转的立方体
该效果是DEMO1中的第一种效果。我们使用关键帧技术来使立方体在水平方向上旋转:
@keyframes spin {
from { transform: rotateY(0); }
to { transform: rotateY(360deg); }
}
.cube {
animation: spin 5s infinite linear;
}
是不是比想象中的要简单得多?6个面上的文字在立方体旋转时都处于正确的位置上。使用关键帧可以制作出许多神奇的动画效果。
垂直旋转的立方体
该效果是DEMO1中的第二种效果。要在垂直方向上旋转立方体只需要简单的改变动画的旋转轴为Y轴。但是这种情况下面板上的文字有时候会显示在相反的方向上,所以我们需要修改一下元素旋转的代码:
@keyframes spin-vertical {
from { transform: rotateX(0); }
to { transform: rotateX(-360deg); }
}
.cube-wrap.vertical .cube {
margin: 0 auto; /* keeps the cube centered */
transform-origin: 0 100px;
animation: spin-vertical 5s infinite linear;
}
.cube-wrap.vertical **** {
transform: rotateX(-270deg) translateY(-100px);
}
.cube-wrap.vertical .back {
transform: translateZ(-100px) rotateX(180deg);
}
.cube-wrap.vertical .bottom {
transform: rotateX(-90deg) translateY(100px);
}
扁平旋转的立方体
该效果是DEMO1中的第三种效果。该效果中移除了立方体的3D效果,每次只显示一个面。要做到只一点,我们可以从wrapper中移除perspective和**的设置:
.wrap {
/* no more perspective */
perspective: none;
perspective-origin: 0 0;
}
现在立方体每次只会显示一个面。
资源:http://sc.chinaz***m/jiaoben/150109306420.htm
复制代码代码如下:
.example-class{text-shadow: [X offset] [Y offset] [Blur size] [Colour];}译者注:X表示x轴上的位移,可为负值;Y表示y轴上的位移,可为负值;Blur表示投影的宽度,不能为负值;Color为投影的颜色。
堆叠多层CSS投影
虽然我们没有必要堆叠多层投影,但通过堆叠多层投影会有更好的3D效果
开始创建3D文字
你可能会选择比文字更深的颜色来作为投影的颜色,所以这个例子中我就用白色的文字,用深一点的灰色作为投影颜色,这个例子中我将H2的文字渲染3D效果,css代码如下:
复制代码代码如下:h2{text-shadow:
1px 1px 0 #CCC,
2px 2px 0 #CCC, /* end of 2 level deep grey shadow */
3px 3px 0 #444,
4px 4px 0 #444,
5px 5px 0 #444,
6px 6px 0 #444; /* end of 4 level deep dark shadow */}效果如下:好了,到这里你已经创建了基本的3D文字,然而,让我们进一步来实现鼠标滑过的文字放大效果,并用css的transision属性实现圆滑的淡入淡出效果。
首先用transform属性实现滑过字体放大
复制代码代码如下:h2:hover{/* CSS3 Transform Effect */
-webkit-transform: scale(1.2); /* Safari & Chrome */
-moz-transform: scale(1.2); /* Firefox */
-o-transform: scale(1.2); /* Opera */}效果如下:然后利用transition属性实现淡入淡出效果
复制代码代码如下:h2{/* CSS3 Transition Effect */
-webkit-transition: all 0.12s ease-out; /* Safari & Chrome */
-moz-transition: all 0.12s ease-out; /* Firefox */
-o-transition: all 0.12s ease-out; /* Opera */}到此,我们就用CSS3实现了3D效果的文字,并且在鼠标滑过是让字体放大,且有淡入淡出的效果,这一切是用纯CSS实现的哦。
新建一个HTML文件粘过去:
2D 旋转
3D 旋转
p {
margin: 12px 0 0 0;
line-height: 150%;
}
#rotate1, #rotatey1 {
border: 1px solid #000000;
background: red;
margin: 10px;
opacity: 0.7;
}
.animated_div {
width: 60px;
height: 40px;
color: #ffffff;
position: relative;
font-weight: bold;
padding: 20px 10px 0px 10px;
float: left;
margin: 20px;
margin-right: 50px;
border: 1px solid #888888;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
font: 12px Verdana, Arial, Helvetica, sans-serif;
line-height: normal;
text-align: center;
vertical-align: middle;
}
#rotate1,#rotatey1 { border:1px solid #000000; background:red; margin:10px; opacity:0.7; }
=360) { clearInterval(rotYINT) if (ny>=360){ny=0} }}//-->
如果要兼容Firefox需要把所有webkit前缀的属性都复制一份并换成moz前缀。另外,IE目前还支持3D变换,只能支持CSS3的平面变换。至少IE10还不支持,IE11我就没测试了。运行body {background:#F6F6F6;}
图片旋转可以用CSS3中的动画效果来做,CSS3中,允许使用 3D 转换来对元素进行格式化。
示例代码如下:
*{margin:0;padding:0;}/*简单可以自定义,参照上面*/
body{font:14px/1.5 "\5FAE\8F6F\96C5\9ED1","\5B8B\4F53", sans-serif, Arial, System;background-color:#FFF;}
#imgg{animation:imgg 1s linear 0s infinite;}
@keyframes imgg{0% {transform:rotateY(0deg);}25%{transform:rotateY(90deg);}50%{transform:rotateY(180deg);}75%{transform:rotateY(270deg);}100% {transform:rotateY(360deg);}}
你别手动缩放
右键输入一个数值,整体缩放
这是因为人的左右眼一般都是有视觉差的,想要改变视觉差,就只有通过不断地练习来慢慢锻炼自己的绘画意识,然后才能画出和头脑中相差无几的图像,这种绘画练习是一个漫长的过程,想一步登天是不现实的。那些画得好的人,都是通过长期的练习才能达到高水平。对于你这种问题,有一个大师专门说过,不过现在找不到图了。正面的平衡,首先是头和五官的平衡,然后才是五官之间的平衡,这里的平衡不是死板的对称,而是根据自己积累的绘画经验产生的一种直觉。你画的五官还算可以,但是跟头部一搭配就不对了,因为头部的朝向明显和五官之间到朝向是不一样的。 这是我改过得图片,你看还有这么明显吗。初学者出现这种问题是常见的,只要勤加练习,就一定会进步。
3d旋转,顾名思义就是立体旋转,涉及到三个轴向,x,y, z,2D旋转只有两个轴向,x,y关键就在z轴呢,我来解释下z轴
z轴就是物体远近,近大远小,所以会使元素看上去会变大,这个是正常的,css3 3D还有个属性就是-webkit-perspective:这个的含义就是景深,就是这个元素离你的眼睛多远,这两个属性有一定的联系,
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“html5如何让图片3d旋转”
下一篇
宠物喂养应该怎么喂?